Method and apparatus for producing animation

ABSTRACT

In some embodiments, a method includes generating blurred copies of an object by applying multi-texturing to the object during one pass through a graphics processing pipeline. In some embodiments, a graphics pipeline includes a texture memory and a graphics processor coupled to the texture memory. The texture memory provides a location to store texture information. The graphics processor provides processor to process the texture information by shifting and blending the texture information in one pass through the graphics processor to obtain shifted and blended texture information.

FIELD

The present invention relates to computer graphics. More particularly,the present invention relates to animation in computer graphics.

BACKGROUND

The demand and desire for animation or the portrayal of motion incomputer systems continues to increase. For example, it is sometimesdesired to reduce an open window in a computer system display to anicon. One process for producing this effect includes removing the windowfrom the display and substituting the icon for the window. However, amore attractive visual effect is obtained by reducing the open window toan icon using animation. Animation includes the rapid display of aseries of image frames during the transformation of a first image, suchas a window, into a second image, such as an icon. To avoid undesiredstroboscopic effects and jerkiness in the animation, the image framesare displayed at a rate of between about one-hundred frames per secondand about two-hundred frames per second. Unfortunately, the currentprocesses for generating and displaying image frames at these rates areexpensive because they include large, high-speed memories and fastprocessors. In addition, some new and existing computer systems do nothave the large, high-speed memories and fast processors required by thecurrent processes for producing animations that are free of stroboscopiceffects and jerkiness.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram of a method for generating blurred copies of anobject in accordance with some embodiments of the present invention.

FIG. 2 is a flow diagram of a method for generating a shifted andblended graphical user interface object blended with a background inaccordance with some embodiments of the present invention.

FIG. 3A is an illustration of a series of graphical user interfaceobjects, including shifted objects, shown with dashed lines, inaccordance with some embodiments of the present invention.

FIG. 3B is an illustration of shifted and blended objects formed fromthe graphical user interface objects, shown in FIG. 3A, and the shiftedobjects, shown in FIG. 3A.

FIG. 4 is a block diagram of a computer system including a processor, astorage unit, a processor memory, a rasterizer, a frame buffer, adisplay, and a graphics pipeline suitable for use in connection with themethods shown in FIG. 1 and FIG. 2 in accordance with some embodimentsof the present invention.

FIG. 5 is a flow diagram of a method suitable for use in connection witha machine readable medium, such as the storage unit, shown in FIG. 4,and the graphics processor, shown in FIG. 4, in accordance with someembodiments of the present invention.

DESCRIPTION

In the following description of some embodiments of the presentinvention, reference is made to the accompanying drawings which form apart hereof, and in which are shown, by way of illustration, specificembodiments of the present invention which may be practiced. In thedrawings, like numerals describe substantially similar componentsthroughout the several views. These embodiments are described insufficient detail to enable those skilled in the art to practice thepresent invention. Other embodiments may be utilized and structural,logical, and electrical changes may be made without departing from thescope of the present invention. The following detailed description isnot to be taken in a limiting sense, and the scope of the presentinvention is defined only by the appended claims, along with the fullscope of equivalents to which such claims are entitled.

FIG. 1 is a flow diagram of a method 100 for generating blurred copiesof an object in accordance with some embodiments of the presentinvention. The method 100 includes generating blurred copies of anobject by applying multi-texturing to the object during one pass througha graphics processing pipeline (block 102). When the blurred copies ofthe object are viewed on a display, such as the display included in thecomputer system shown in FIG. 4, the effect is substantially similar tothe effect obtained by photographing the object using a finite exposuretime. A description of applying multi-texturing to produce a blurredcopy of an object is included in the description of FIG. 3 providedbelow. A description of applying multi-texturing to an object during onepass through a graphics processing pipeline is included in thedescription of FIG. 4 provided below.

The term “object,” as used herein includes graphical objects, such asobjects used in computer graphics. Graphical objects include any objectsthat can be displayed on a visual display. Some exemplary graphicalobjects include objects used in graphical user interfaces, such aswindows, drop-down menus, web page displays, and icons.

The term “multi-texturing,” as used herein, includes the operations ofmapping multiple textures or surface patterns onto an object andshifting the patterns with respect to the object. Multi-texturing, whichincludes combination operations, such as adding textures, is performedin a single operation in a graphics hardware unit, such as a graphicspipeline. A description of an exemplary graphics pipeline suitable foruse in connection with the method 100 is included in the description ofthe computer system shown in FIG. 4. Example applications ofmulti-texturing include light mapping, specular mapping, environmentmapping, gloss mapping, morphing, and emboss-style bump mapping. Theshifting operation includes shifting the pattern with respect to theobject through the application of a geometrical transformation to thepattern.

Blurred objects, such as blurred windows and blurred icons, generated bythe method 100 can be displayed on a visual display device, such as acathode ray tube, a plasma display, or a liquid crystal display tocreate the illusion of motion in the object. The illusion of motion canbe created by displaying a small number of the blurred objects, so theillusion of motion can be created in systems that do not include large,high speed memories and fast processors. In some embodiments, a smallnumber of blurred objects includes five blurred objects displayed overabout one-quarter of a second. Exemplary systems that include a visualdisplay but do not include large, high speed memories and fastprocessors include computer systems, such as some laptop computers, andcommunication systems, such as some cellular telephones.

To show an object in motion, images of blurred copies of the object arepresented at several different locations on a visual display in rapidsuccession. Each of the images of the blurred copies is formed byblending and shifting one or more instances of the object. The illusionof motion can be created by displaying a small number of the images ofthe blurred copies of the object. The images are created with only onepass through the graphics processor by using the multi-texturing featureof the a graphics processor and therefore can be presented in rapidsuccession. Creating images using only one pass through the graphicsprocessor reduces the bandwidth required in the graphics processor whencompared with the bandwidth required in the graphics processor forcreating images using multiple passes through the graphics processor.

An exemplary animation suitable for generation using the method 100includes rotating an application window, such as an spreadsheet window,as it recedes into the background. In this animation, the spreadsheetwindow is located at an initial position in three-dimensional space. Atexture is applied to the spreadsheet window. Successive instances ofthe texture are blended with the first instance of the spreadsheetwindow. However, each time the texture is blended, the geometricalmapping of the texture is slightly rotated. In addition, each of thegeometrical mappings include a reduction in size of the spreadsheetwindow to simulate the effect of the spreadsheet window moving from thefront to the rear of the viewing space.

In the animation of the spreadsheet window, where all the instances ofthe rotating spreadsheet window overlap, the result of themulti-texturing can be opaque. However, where only some of the instancesof the rotating spreadsheet window overlap, the result of themulti-texturing can be transparent. Thus, the method 100 can create amotion blurred image of a transparent object having a reducedtransparency, where all the images overlap, when compared with thetransparency of the motion blurred image, where only some of the imagesoverlap.

In some embodiments, generating blurred copies of the object by applyingmulti-texturing to the object during one pass through the graphicsprocessing pipeline includes generating a texture and shifting thetexture with respect to the object before applying the texture to theobject. For example, generating a blurred copy of a circular disk havinga perimeter includes generating a texture, such as a bumped texture, andshifting the texture outside the perimeter of the circular disk.Applying the shifted, bumped texture to the circular disk generates anoblong disk having a bumped texture. The oblong disk is a blurred copyof the circular disk. Displaying a small number of the oblong disks inrapid succession on a visual display along the trajectory of motioncreates the illusion of motion for the original circular disk. A moredetailed description of this example is included in the description ofFIG. 3 provided below.

In some embodiments, the method 100 further includes displaying theblurred copies of the object on a visual display, such as a plasmadisplay. In some embodiments, generating blurred copies of the object byapplying multi-texturing to the object during one pass through thegraphics processing pipeline, includes applying bump texturing to theobject. In some embodiments, generating blurred copies of the object byapplying multi-texturing to the object during one pass through thegraphics processing pipeline further includes displaying the blurredcopies of the object on a visual display coupled to a communicationdevice, such as a cellular telephone.

FIG. 2 is a flow diagram of a method 200 for generating a shifted andblended graphical user interface object blended with a background inaccordance with some embodiments of the present invention. The method200 includes acquiring a graphical user interface object includingassociated texture (block 202), generating one or more shifted instancesof the associated texture (block 204), blending the one or more shiftedinstances of the associated texture to produce a blended texture, (block206), shifting the blended texture to obtain a blended and shiftedtexture, (block 208), applying the blended and shifted texture to thegraphical user interface object (block 210), and blending the graphicaluser object with a background (block 212).

In some embodiments, acquiring a graphical user interface objectincludes acquiring a graphical user interface window. For example,acquiring a graphical user interface object can include acquiring agraphical user interface window displaying a spreadsheet.

In some embodiments, blending the graphical user object with thebackground includes blending the graphical user interface window withone or more background windows. For example, blending the graphical userinterface window with one or more background windows can includeblending the graphical user interface window with one or more wordprocessing windows.

In some embodiments, blending the graphical user interface window withone or more background windows, includes blending the graphical userinterface window with one or more web page windows. For example,blending the graphical user interface window with one or more web pagewindows can include blending the graphical user interface window withone or more web page windows displaying a newspaper column.

In some embodiments blending the graphical user object with thebackground includes adding the graphical user object to the background.For example, blending the graphical user object with the background caninclude adding the graphical user object to a bump textured background.

FIG. 3A is an illustration of a series 300 of graphical user interfaceobjects 302, 304, and 306, including shifted objects 308, 310, 312, and314, shown with dashed lines, in accordance with some embodiments of thepresent invention. The series 300 of graphical user interface objects302, 304, and 306 are shown at points in a path from a coordinate (0,0)to a coordinate (2,0) traveled over a time t. The shifted objects 308,310, 312, and 314 illustrate shifted instances of the graphical userinterface objects 302, 304 and 306.

FIG. 3B is an illustration of shifted and blended objects 316, 318, and320 formed from the graphical user interface objects 302, 304, and 306,shown in FIG. 3A, and the shifted objects 308, 310, 312, and 314, shownin FIG. 3A. The shifted and blended objects 316, 318, and 320, sometimesreferred to as blurred copies, of the graphical user interface objects302, 304, and 306, shown in FIG. 3A, are formed by shifting each of theuser interface objects 302, 304, and 306 to form the shifted objects308, 310, 312, and 314, shown in FIG. 3A, and blending the shiftedobjects 308, 310, 312, and 314 with the graphical user interface objects302, 304, and 306. For example, the shifted object 308 is blended withthe graphical user interface object 302 to generate the shifted andblended object 316. The shifted objects 310 and 312 are blended with thegraphical user interface object 304 to generate the shifted and blendedobject 318. The oblong shape of the shifted and blended object 318 isobtained by shifting and blending at both the leading and trailing edgeof the graphical interface object 304. The shifted object 314 is blendedwith the graphical user interface object 306 to generate the shifted andblended object 320. Each of the shifted and blended objects 316, 318,and 320 has a substantially oblong shape, and when the shifted andblended objects 316, 318, and 320 are displayed in rapid succession on avisual display an illusion of motion is created.

Although only four shifted objects, the shifted objects 308, 310, 312,and 314, are used to form the shifted and blended objects 316, 318, and320, those skilled in the art will appreciate that any number of shiftedobjects can be used in the generation of the shifted and blended objects316, 318, and 320. In some embodiments, between about eight and aboutten shifted objects are blended used to form one shifted and blendedobject. In addition, the relative transparency of each of the shiftedobjects 308, 310, 312, and 314 can be modulated or varied to obtainspecial effects, such as translucence, in the shifted and blendedobjects 316, 318, and 320, and in the resulting animation.

FIG. 4 is a block diagram of a computer system 400 including a processor402, a storage unit 404, a processor memory 406, a rasterizer 408, aframe buffer 410, a display 412, and a graphics pipeline 414 suitablefor use in connection with the methods shown in FIG. 1 and FIG. 2 inaccordance with some embodiments of the present invention. The graphicspipeline 414 includes a graphics processor 416 and a texture memory 418.Although the description of the graphics processor 416 and the texturememory 418 provided below include particular functions associated withone or the other of these units, those skilled in the art willappreciate that any partitioning of functions between these units servesonly to simply the description of the operation of the graphics pipeline414. Functions included in the graphics processor 416 can be included inthe texture memory 418, and functions included in the texture memory 418can be included in the graphics processor 416.

The processor 402 is coupled to the storage unit 404 and the processormemory 406. The processor memory 406 is coupled to the graphics pipeline414 at the graphics processor 416 and the texture memory 418. Thegraphics pipeline 414 is coupled, at the graphics processor 416 and thetexture memory 418, to the rasterizer 408. The rasterizer 408 is coupledto the frame buffer 410. And the frame buffer 410 is coupled to thedisplay 412 and to the graphics pipeline 414 at the graphics processor416. Those skilled in the art will appreciate that the embodiment of thegraphics pipeline 414, shown in FIG. 4, is only one embodiment of manypossible embodiments of a graphics pipeline suitable for use inconnection with the computer system 400.

The processor 402 is a programmable device that can store, retrieve, andprocess information. The processor 402 is not limited to a particulartype of processor. Exemplary processors suitable for use in connectionwith the computer system 400 include complex instruction computer systemprocessors, reduced instruction set processors, digital signalprocessors, and very long instruction word processors.

The storage unit 404 provides high capacity storage for the processor402. The storage unit 404 is not limited to a particular type ofstorage. Exemplary types of storage units suitable for use in connectionwith the computer system 400 include magnetic storage, such as magneticdisk storage or magnetic tape storage, and optical storage, such asoptical disk storage or holographic storage.

The processor memory 406 provides information storage having fasteraccess times than the storage unit 404. The processor memory 406 is notlimited to a particular type of processor memory. Exemplary typesprocessor memory suitable for use in connection with the computer system400 include semiconductor memory, such as random access memory, dynamicrandom access memory, static random access memory, magnetic randomaccess memory, and flash memory.

The rasterizer 408 receives image information from the texture memory418 and the graphics processor 416 and provides rasterized imageinformation to the frame buffer 410.

The frame buffer 410 includes storage for preparing frames for displayon the display 412. The frame buffer 410 includes semiconductor storage,such as dynamic random access memory.

The display 412 provides a visual display of information provided by theframe buffer 410. The display 412 is not limited to a particular type ofdisplay. Exemplary displays suitable for use in connection with thecomputer system 400 include cathode ray tube displays, plasma displays,and liquid crystal displays.

The graphics pipeline 414 includes the graphics processor 416 and thetexture memory 418. The graphics processor 416 processes informationreceived from the processor memory 406 and the texture memory 418. Insome embodiments, the graphics processor 416 includes an integratedprocessor to process images composed of picture elements or pixels. Insome embodiments, the graphics processor 416 includes a set of discreteprocessing units configurable for a particular type of image processingoperation, such as blending or blending and shifting pixels.

In operation, the processor 402 reads texture information from thestorage unit 404 and writes the texture information to the processormemory 406. In the graphics pipeline 414, the texture memory 418 readstexture information from the processor memory 406. The graphicsprocessor 416 reads texture information from the texture memory 418 orthe processor memory 406. The graphics processor 416 processes thetexture information. The processing includes shifting and blending thetexture information in one pass through the graphics pipeline 414 toobtain shifted and blended texture information. The graphics processor416 applies the shifted and blended texture information to an object andprovides the object to the rasterizer 408. In some embodiments, thegraphics processor reads the texture memory 418 once and applies thetexture to an object a plurality of times at different shifts or offsetsto a graphical user interface object. In some embodiments, the graphicaluser interface object includes a graphical user interface window. Thegraphical user interface object or window (after having shifted andblended texture applied), when displayed at a plurality of locations onthe display 412, provides the illusion of motion.

FIG. 5 is a flow diagram of a method 500 suitable for use as machineexecutable instructions in connection with a machine readable medium,such as the storage unit 404, shown in FIG. 4, and the graphicsprocessor 416, shown in FIG. 4, in accordance with some embodiments ofthe present invention. The method 500 includes generating one or moreshifted instances of an object (block 502), and blending the object andthe one or more shifted instances of the object to obtain a blendedobject (block 504). In some embodiments, the method 500 further includesdisplaying the blended object on a visual display. In some embodiments,the method 500 further includes blending the blended object with abackground. In some embodiments, the method 500 further includesdisplaying the blended object with a background. In some embodiments,displaying the blended object with the background includes displayingthe blended object with the background on a communication device.

Reference in the specification to “an embodiment,” “one embodiment,”“some embodiments,” or “other embodiments” means that a particularfeature, structure, or characteristic described in connection with theembodiments is included in at least some embodiments, but notnecessarily all embodiments, of the invention. The various appearancesof “an embodiment,” “one embodiment,” or “some embodiments” are notnecessarily all referring to the same embodiments.

If the specification states a component, feature, structure, orcharacteristic “may,” “might,” or “could” be included, that particularcomponent, feature, structure, or characteristic is not required to beincluded. If the specification or claim refers to “a” or “an” element,that does not mean there is only one of the element. If thespecification or claims refer to “an additional” element, that does notpreclude there being more than one of the additional element.

Although specific embodiments have been described and illustratedherein, it will be appreciated by those skilled in the art, having thebenefit of the present disclosure, that any arrangement which isintended to achieve the same purpose may be substituted for a specificembodiment shown. This application is intended to cover any adaptationsor variations of the present invention. Therefore, it is intended thatthis invention be limited only by the claims and the equivalentsthereof.

1. A method comprising: acquiring a graphical user interface objectincluding associated texture; generating one or more shifted instancesof the associated texture; blending the one or more shifted instances ofthe associated texture to produce a blended texture; shifting theblended texture to obtain a blended and shifted texture; applying theblended and shifted texture to the graphical user interface object tocreate a graphical user object; blending the graphical user object witha background; and displaying in succession the blended and shiftedtextures as applied to the graphical user object to create the illusionof motion.
 2. The method of claim 1, wherein acquiring a graphical userinterface object comprises acquiring a graphical user interface window.3. The method of claim 2, wherein blending the graphical user objectwith the background comprises blending the graphical user interfacewindow with one or more background windows.
 4. The method of claim 3,wherein blending the graphical user interface window with one or morebackground windows comprises blending the graphical user interfacewindow with one or more web page windows.
 5. The method of claim 1,wherein blending the graphical user object with the background comprisesadding the graphical user object to the background.
 6. A machinereadable medium having machine executable instructions for performing amethod comprising: acquiring a graphical user interface object includingassociated texture; generating one or more shifted instances of theassociated texture; blending the one or more shifted instances of theassociated texture to produce a blended texture; shifting the blendedtexture to obtain a blended and shifted texture; applying the blendedand shifted texture to the graphical user interface object to create agraphical user object; blending the graphical user object with abackground; and displaying in succession the blended and shiftedtextures as applied to the graphical user object to create the illusionof motion.
 7. The machine readable medium having machine executableinstructions for performing the method of claim 6, further comprisingdisplaying the blended graphical user object on a visual display.
 8. Themachine readable medium having machine executable instructions forperforming the method of claim 6, wherein blending the graphical userobject with a background includes the background comprising one or wordprocessing windows.
 9. The machine readable medium having machineexecutable instructions for performing the method of claim 6, furthercomprising displaying the blended graphical user object with abackground.
 10. The machine readable medium having machine executableinstructions for performing the method of claim 9, wherein displayingthe blended graphical user object with a background comprises displayingthe blended object with a background on a communication device.